package com.foreknow.elm.controller;

import com.foreknow.elm.po.Orders;
import com.foreknow.elm.service.OrdersService;
import com.foreknow.elm.service.impl.OrdersServiceImpl;

import javax.servlet.http.HttpServletRequest;
import java.sql.SQLException;
import java.util.List;

/**
 * @author shkstart
 * @create 2021-08-27 14:54
 */
public class OrdersController {
    /**
     * 1. OrdersController/createOrders
     *    参数：userId、businessId、daId、orderTotal
     *    返回值：int（订单编号）
     *    功能：根据用户编号、商家编号、订单总金额、送货地址编号向订单表中添加一条记录，
     *               并获取自动生成的订单编号，
     *               然后根据用户编号、商家编号从购物车表中查询所有数据，批量添加到订单明细表中，
     *               然后根据用户编号、商家编号删除购物车表中的数据。
     */
//    OrdersController/createOrders
    public int createOrders(HttpServletRequest request)  throws Exception{
        //获取请求参数
        String userId = request.getParameter("userId");
        int businessId=Integer.parseInt(request.getParameter("businessId"));
        int daId=Integer.parseInt(request.getParameter("daId"));
        Orders orders=new Orders();
        orders.setUserId(userId);
        orders.setBusinessId(businessId);
        orders.setDaId(daId);
        //调用service方法
        OrdersService service=new OrdersServiceImpl();
        int i = service.saveOrders(userId,businessId,daId);



        return i;
    }

    /**
     * 2. OrdersController/getOrdersById
     *    参数：orderId
     *    返回值：orders对象（包括多对一：商家信息；    一对多：订单明细信息）
     *    功能：根据订单编号查询订单信息，包括所属商家信息，和此订单的所有订单明细信息
     **/
    public Orders getOrdersById(HttpServletRequest request)  throws Exception{
        int  orderId = Integer.parseInt(request.getParameter("orderId"));
        //调用service方法
        OrdersService service=new OrdersServiceImpl();
        Orders ordersById = service.getOrdersById(orderId);
        return ordersById;
    }
    /**
     * 3. OrdersController/listOrdersByUserId
     *    参数：userId
     *    返回值：orders数组（包括多对一：商家信息；    一对多：订单明细信息）
     *    功能：根据用户编号查询此用户的所有订单信息
     */
    public List<Orders> listOrdersByUserId(HttpServletRequest request)  throws Exception{
        //获取请求参数
        String userId = request.getParameter("userId");
        //调用service方法
        OrdersService service=new OrdersServiceImpl();
        List<Orders> list = service.listOrdersByUserId(userId);
        return list;
    }
}
